package gui;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.JRootPane;
import javax.swing.JTextArea;

import java.awt.BorderLayout;

import javax.swing.JMenu;
import javax.swing.JTextPane;

import data.*;
import businessobjects.Test;
import businessobjects.User;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Toolkit;

import logik.FragenManagement;

import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;

public class mathKwiz {

	private JFrame frmMathkwiz;
	private User user;
	private Test test;
	private FragenManagement fm = new FragenManagement();
	private String[] fragen = null;
	private JTextField textField;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					// mathKwiz window = new mathKwiz();
					// window.frmMathkwiz.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 * 
	 * @wbp.parser.entryPoint
	 */

	public mathKwiz(User user, Test test) {
		this.user = user;
		this.test = test;
		initialize();
		this.frmMathkwiz.setVisible(true);
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frmMathkwiz = new JFrame();

		frmMathkwiz.setTitle("mathKwiz");
		frmMathkwiz.setBounds(100, 100, 450, 300);
		frmMathkwiz.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		JMenuBar menuBar = new JMenuBar();
		frmMathkwiz.setJMenuBar(menuBar);

		JMenu mnWissenstest = new JMenu("Wissenstest");
		menuBar.add(mnWissenstest);

		JMenuItem mntmWissenstestStarten = new JMenuItem("Wissenstest starten");
		mntmWissenstestStarten.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				frmMathkwiz.setVisible(false);
				wissenNew wN;
				wN = new wissenNew();
				wN.main(null);
			}
		});
		mnWissenstest.add(mntmWissenstestStarten);
		
		JMenuItem mntmFrageErfassen = new JMenuItem("Neue Frage erfassen");
		mntmFrageErfassen.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				frmMathkwiz.setVisible(false);
				frageNew fn;
				fn = new frageNew();
				fn.main(null);
			}
		});
		mnWissenstest.add(mntmFrageErfassen);

		JMenu mnEinstellungen = new JMenu("Einstellungen");
		menuBar.add(mnEinstellungen);

		JMenuItem mntmBenutzerAbmelden = new JMenuItem("Benutzer abmelden");
		mntmBenutzerAbmelden.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				frmMathkwiz.setVisible(false);
				benutzerLogoff bL;
				bL = new benutzerLogoff();
				bL.main(null);

			}
		});

		mnEinstellungen.add(mntmBenutzerAbmelden);



		JMenu mnInfo = new JMenu("Info");
		menuBar.add(mnInfo);

		JMenuItem mntmInfo = new JMenuItem("About mathKwiz");
		mntmInfo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				frmMathkwiz.setVisible(false);
				infoBox iB;
				iB = new infoBox();
				iB.main(null);
			}
		});

		mnInfo.add(mntmInfo);
		frmMathkwiz.getContentPane().setLayout(null);
		if (test.getAnzFragen() > 0) {
			// fragen = test.getFragen();

			// for(int i = 0; i <= test.getAnzFragen(); i++){
			fragen = test.getFragen();
			// }

			JTextArea lblNewLabel = new JTextArea(
					fragen[test.getAnzFragen() - 1]);
			lblNewLabel.setBounds(10, 11, 414, 85);
			lblNewLabel.setEditable(false);
			lblNewLabel.setWrapStyleWord(true);
			frmMathkwiz.getContentPane().add(lblNewLabel);
			textField = new JTextField();
			textField.setBounds(10, 122, 414, 33);
			frmMathkwiz.getContentPane().add(textField);
			textField.setColumns(10);

			JButton btnZurck = new JButton("Zur\u00FCck");
			btnZurck.setBounds(10, 207, 89, 23);
			frmMathkwiz.getContentPane().add(btnZurck);

			JButton btnWeiter = new JButton("Weiter");
			btnWeiter.setBounds(335, 207, 89, 23);

			btnWeiter.addActionListener(new ActionListener() {

				@Override
				public void actionPerformed(ActionEvent e) {
					if (test.getAntworten()[test.getAnzFragen() - 1]
							.equals(textField.getText())) {
						// Antwort ist richtig
						System.out.println(test.getAnzFragen());
						if (test.getAnzFragen() <= 1) {
							JOptionPane.showMessageDialog(frmMathkwiz,
									"Das Quiz ist beendet, vielen Dank.");
						}
						frmMathkwiz.dispose();

						test.setAnzFragen(test.getAnzFragen() - 1);
						new mathKwiz(user, test);



					} else {
						// Antwort ist falsch
						JOptionPane.showMessageDialog(frmMathkwiz,
								"Die Antwort ist leider falsch.");
						System.out.println("textfield: " + textField.getText());
						System.out.println("test: "
								+ test.getAntworten()[test.getAnzFragen() - 1]);

					}
				}

			});

			frmMathkwiz.getContentPane().add(btnWeiter);
			JRootPane pane1 = frmMathkwiz.getRootPane(); // Mit Enter weiter gelangen//
			pane1.setDefaultButton(btnWeiter); // Mit Enter weiter gelangen//
		}
	}
}
